package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.EmployeeBean;

import java.util.List;

public interface IEmployeeService {
    /**
     * 添加员工
     *
     * @param employeeBean 员工对象
     */
    public void add(EmployeeBean employeeBean);

    /**
     * 员工离职
     * 1、修改状态为离职
     * 2、将员工正在进行的项目，完成日期修改为当前日期
     *
     * @param id 员工id
     */
    public void updateStatus(Integer id);

    /**
     * 根据员工id修改工资和电话
     *
     * @param id        员工编号
     * @param newWages 新工资
     * @param newPhone  新电话
     */
    public void updateSalaryPhone(Integer id, int newWages, String newPhone);

    /**
     * 根据员工id，查询当前员工信息，
     * 同时查询员工参与项目信息。
     * 进度信息中需要包含项目的名称
     *
     * @param id 员工id
     * @return 员工对象
     */
    public EmployeeBean findById(Integer id);

    /**
     * 动态条件分页查询员工信息
     *
     * @param pageNO    页码
     * @param name      姓名
     * @param specialty 专长
     * @param status    状态
     * @param order     排序规则
     * @return 员工分页对象
     */
    public PageInfo<EmployeeBean> cutPageFindByItem(int pageNO, String name, String specialty,
                                                 String status, String order);
    /**
     * 按姓名、专长，动态条件查询在职（固定条件），同时查询没有参与项目员工信息
     *
     * @param id        项目id（固定条件）
     * @param specialty 专长
     * @param name      员工名字
     * @return 员工集合
     */
    public List<EmployeeBean> findByItem(Integer id, String specialty, String name);
    /**
     * 在职员工详细信息
     * 根据员工id，查询当前员工信息，查询员工正在进行项目信息
     *
     * @param id 员工id
     * @return 员工对象
     */
    public EmployeeBean findByStaffId(Integer id);
}
